#include "BaseThread.h"

/*******************************************************************************
*  FUNC     :   构造函数
*  ARGS     :
*  RTN      :
*  NOTE     :
*******************************************************************************/
BaseThread::BaseThread()
{
}

/********************************************************************************
*  FUNC     :   析构函数
*  ARGS     :
*  RTN      :
*  NOTE     :
*******************************************************************************/
BaseThread::~BaseThread()
{
}

/********************************************************************************
*  FUNC     :   启动线程函数
*  ARGS     :
*  RTN      :   成功: true, 失败: false
*  NOTE     :
*******************************************************************************/
bool BaseThread::Start()
{
    int ret = pthread_create(&thread_id_, NULL, DoProcess, this);
    if (ret != 0)
        return false;

    return true;
}

/********************************************************************************
*  FUNC     :   等待线程退出函数
*  ARGS     :
*  RTN      :
*  NOTE     :
*******************************************************************************/
void BaseThread::Join()
{
    pthread_join(thread_id_, NULL);
}

/********************************************************************************
*  FUNC     :   线程处理函数
*  ARGS     :   param （当前为指向从BaseThread继承的类）
*  RTN      :
*  NOTE     :
*******************************************************************************/
void *BaseThread::DoProcess(void *param)
{
    if (param)
        ((BaseThread *)param)->DoProcess();

    return NULL;
}
